package com.kaifamiao.inner;

public class TestHuman {

    public static void main(String[] args) {

        // 用匿名类继承抽象类并实现其所有抽象方法
        // 在匿名类的构造方法中调用的是父类的无参数构造方法
        Human h = new Human() {
            @Override
            public void eat(String food) {
                System.out.println( "中国人习惯用筷子吃" + food );
            }
        };

        h.eat( "老碗鱼" );

        System.out.println( "- ".repeat( 15 ) );

        // 在匿名类的构造方法中调用的是父类的带有一个String参数的构造方法
        Human u = new Human( "莫迪" ) {
            @Override
            public void eat(String food) {
                System.out.println( "三哥" + this.name + "用手抓着吃" + food );
            }
        };
        u.eat( "麻辣烫" );

        System.out.println( "- ".repeat( 15 ) );

        // 在匿名类的构造方法中调用的是父类的全参构造方法
        Human m = new Human( "李芳" , '女') {
            @Override
            public void eat(String food) {
                System.out.println( this.name + "正在吃" + food );
            }
        };
        m.eat( "麻辣烫" );
    }

}
